package module.library.service;


import common.model.Entity.libraryEntity.BookItem;
import common.model.Entity.libraryEntity.BorrowingRules;
import common.model.Entity.libraryEntity.Borrow;

import network.protocol.Response;

import java.util.List;
import java.util.Optional;

/**
 * 借阅服务接口
 *
 * 定义图书借阅相关的核心业务操作
 */
public interface BorrowService {

    /**
     * 获取用户所有未归还的图书借阅记录
     * @param userId 用户Id
     * @return 该用户所有未归还的图书列表
     */
    Response<List<Borrow>> findActiveBorrowByUser(Long userId);

    /**
     * 根据借阅记录 Id 获取详情
     * @param id 借阅记录 Id
     * @return 匹配的借阅记录，如果未找到则返回 Optional.empty()
     */
    Response<Optional<Borrow>> findById(Long id);
//
//    Response<List<BookItem>> findBookCopies(String isbn);

    Response<?> borrowBook(Long itemId,Long userId);

    Response<?> returnBook(Long itemId,Long userId);
}
